feat(sources): recover HeadersList + SourceIdentityFields stack into main - #224
Merged
Conversation
Two composable primitives shared across source-plugin Add forms: - <HeadersList> + presets prop — headers list with quick-add picker (replaces the closed AuthenticationSection). - <SourceIdentityFields> + useSourceIdentity hook — display-name + auto-derived namespace, with namespace detaching on manual edit.
Replaces the hand-rolled auth/URL/headers UI with <FilterTabs> + <HeadersList> + inline OAuth content, <FloatActions> for the save/cancel row, and <IOSSpinner> + <Textarea maxRows> for probe status and previews.
…scovery, onepassword forms Uses the shared <HeadersList> primitive plus plugin-specific tab / OAuth / strategy-picker UI: - openapi: restores spec-derived multi-preset strategy picker (Bearer + API Key + Basic…) that the prior <AuthenticationSection> version silently dropped. Title card moves below the spec input. - graphql, google-discovery: inline <FilterTabs> for None / Header / OAuth where needed. - Removes the spec-operations list from Add forms — not useful pre-connect.
- pages/sources.tsx: restructures the list to use CardStack entries with title cards, moves connected sources to the top, and drops the old built-in section header (built-ins live exclusively in the sidebar now). - pages/sources-add.tsx: wraps the add-source container in a relative positioning wrapper so FloatActions can render as a sticky bottom bar inside the form without escaping the layout.
RhysSullivan
added a commit
that referenced
this pull request
May 31, 2026
…main (#224) * feat(react): add <HeadersList> and <SourceIdentityFields> primitives Two composable primitives shared across source-plugin Add forms: - <HeadersList> + presets prop — headers list with quick-add picker (replaces the closed AuthenticationSection). - <SourceIdentityFields> + useSourceIdentity hook — display-name + auto-derived namespace, with namespace detaching on manual edit. * refactor(mcp): adopt <HeadersList> in Add/Edit source forms Replaces the hand-rolled auth/URL/headers UI with <FilterTabs> + <HeadersList> + inline OAuth content, <FloatActions> for the save/cancel row, and <IOSSpinner> + <Textarea maxRows> for probe status and previews. * refactor(sources): adopt <HeadersList> in openapi, graphql, google-discovery, onepassword forms Uses the shared <HeadersList> primitive plus plugin-specific tab / OAuth / strategy-picker UI: - openapi: restores spec-derived multi-preset strategy picker (Bearer + API Key + Basic…) that the prior <AuthenticationSection> version silently dropped. Title card moves below the spec input. - graphql, google-discovery: inline <FilterTabs> for None / Header / OAuth where needed. - Removes the spec-operations list from Add forms — not useful pre-connect. * refactor(react): restructure sources list and sources-add container - pages/sources.tsx: restructures the list to use CardStack entries with title cards, moves connected sources to the top, and drops the old built-in section header (built-ins live exclusively in the sidebar now). - pages/sources-add.tsx: wraps the add-source container in a relative positioning wrapper so FloatActions can render as a sticky bottom bar inside the form without escaping the layout. --------- Co-authored-by: mrzmyr <mrzmyr@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Recovery PR
The stacked PRs #216 through #220 were all marked merged via auto-merge, but only #216 actually landed in main. The other four were squash-merged into their direct base branches (which were other feature branches in the stack) instead of cascading into main, so #217-#220's content ended up orphaned on intermediate branches.
This PR rolls up the remaining four commits from that stack, rebased onto latest main (resolving conflicts with #221/#222/#223 which landed concurrently):
<HeadersList>and<SourceIdentityFields>primitives — originally feat(react): add <AuthenticationSection> primitive #217<HeadersList>in Add/Edit source forms — originally refactor(mcp): adopt shared primitives in Add/Edit source forms #218<HeadersList>in openapi, graphql, google-discovery, onepassword forms — originally refactor(sources): standardize openapi, graphql, google-discovery, onepassword forms #219Conflict resolutions against concurrent main changes:
mcp/sdk/plugin.ts— refactor(mcp): store source config once per namespace, not per binding #223 refactoredupdateSourceto use a singleexistingvariable. Merged with ournameedit support:name: input.name?.trim() || existing.name.graphql/sdk/plugin.ts,openapi/sdk/plugin.ts— same pattern as mcp.google-discovery/sdk/types.ts— fix(mcp,google-discovery): persist pending OAuth sessions via binding store #221 convertedGoogleDiscoveryOAuthSessionfrom a TS interface to a persistable Effect Schema. Kept the Schema shape and applied ourclientId→clientIdSecretIdrename on top.Typecheck + oxlint both clean locally across
react,openapi,graphql,google-discovery,mcp.